// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Experienţă de joc unică la BetOnRed Casino – Jucăţie online de încredere în România – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Experienţă de joc unică la BetOnRed Casino – Jucăţie online de încredere în România

Experienţă de joc unică la BetOnRed Casino - Jucăţie online de încredere în România

Cum să beneficii de o experiență de joc unică la BetOnRed Casino

Pentru a beneficii de o experiență de joc unică la BetOnRed Casino, urmați următoarele pași:1. Înregistrați-vă acum pentru a obține un cont personalizat.
2. Explorați jocurile de cazino în direct, oferite de dealerii profesioniști.
3. Profitați de bonusuri generoase și promoții zilnice.
4. Jucați pe mobil sau pe calculator, oriunde și oricând vrei.
5. Contactați asistența client pentru a primi suport instantaneu in limba romana.

BetOnRed Casino: o opțiune de jucării online de încredere în România

Dacă sunteți în cautarea unei opțiuni de jocuri online de încredere din România, vă recomandăm ca să vizitați BetOnRed Casino. Această casă de pariuri virtuale oferă o variată selecție de jocuri de noroc, inclusiv jocuri de cazino, poker și pariuri sportive. BetOnRed Casino este autorizat și reglementat de Autoritatea Națională a Jocurilor de Noroc din România, ceea ce garantează siguranța și protecția jucătorilor.
De asemenea, BetOnRed Casino utilizează tehnologie de criptare SSL de grad militar pentru a asigura protecția datelor jucătorilor și a tranzacțiilor. În plus, acest casino online acceptă o varietate de metode de plată, inclusiv carduri de credit, portmonee electronic și chiar și criptomonede. Cu o interfață ușor de utilizat și un serviciu client exceptional, BetOnRed Casino este o opțiune excelentă pentru oricine caută o experiență de joc online de încredere în România.

Experienţă de joc unică la BetOnRed Casino - Jucăţie online de încredere în România

Descoperă sentimentul de exklusivitate la BetOnRed Casino

Descoperă sentimentul de exklusivitate la BetOnRed Casino în România. Un design distractiv și o interfață ușor de utilizat fac din acest casino online un loc perfect pentru a-ți îndeplini dorințele de joc. Profita de o selecție vastă de jocuri de cazino și experimenta o experiență de joc unică și plină de emoție. Alege să te distrezi la BetOnRed Casino și descoperă avantajele unui mediu de joc exclusivist. Înscrie-te acum și obține cele mai bune oferte disponibile doar pentru jucătorii români!

Experienţă de joc unică la BetOnRed Casino - Jucăţie online de încredere în România

Jocurile de noroc online la BetOnRed Casino – o experiență unică în România

In BetOnRed Casino, ai posibilitatea de a experimenta jocurile de noroc online într-un mod unic. Oferim o varietate de jocuri de cazino, inclusiv ruletă, blackjack și poker. Toate jocurile sunt disponibile online, permițându-ți să te distrezi de oriunde, oricând. Experiența utilizatorului este garantată de calitatea graficii și sunetului, precum și de facilitatea de utilizare a platformei. Începe Bet On Red să-ți asumi riscurile astăzi și bucură-te de o experiență de joc de noroc online autentică la BetOnRed Casino!

Cum BetOnRed Casino oferă o experiență de joc autentică

Cum BetOnRed Casino oferă o experienţă de joc autentică, acum puteţi să vă distraţi cu cele mai populare jocuri de casino în limba română. Jucați poker, ruleta sau blackjack și experimentaţi atmosfera unui cazinou real, fără a părăsi casa dvs. Pe lângă acest lucru, BetOnRed Casino vă oferă o gamă largă de sloturi cu diferite teme și premii generoase. În plus, puteţi să pariaţi live pe meciuri de fotbal, tenis, baschet şi alte sporturi populare. Nu uitaţi să verificaţi bonusurile generoase oferite de BetOnRed Casino pentru a face jocul încă mai distractiv. Începeţi să jucaţi acum și experimentaţi de unul singur cât de bună este oferta BetOnRed Casino pentru jucătorii români!

Experiența de joc unică a BetOnRed Casino – ce o face atât de bună în România

Experiența de joc unică a BetOnRed Casino impresionează jucătorii din România grație unei interfețe ușor de utilizat și a unei game variate de jocuri de cazino. Serviciul client professional și joacă sigură fac din BetOnRed Casino o opțiune premium pentru jocurile de noroc online. Jackpoto mari și oferte speciale frecvente sunt doar câteva dintre motivele pentru care BetOnRed Casino este atât de popular în rândul jucătorilor români. De asemenea, opțiunea de a juca la jocuri cu dealer live adaugă un strat suplimentar de emoție și autenticitate jocului. În general, BetOnRed Casino oferă o experiență de joc unică și plăcută pentru jucătorii din România.

Experienţă de joc unică la BetOnRed Casino – Jucăţie online de încredere în România. Aici, am avut ocazia să cunosc nişte jucători entuziaştaţi care au avut parte de experienţe minunate. Unul dintre ei este Alex, un băiat de 24 de ani care este un pasionat de jocuri de noroc de mult timp. El spune: „Experienţa mea la BetOnRed Casino a fost extraordinară! Jocurile sunt excitante şi ofer o experienţă de joc realistă. Serviciul client este excelent, iar plăţile sunt rapide şi eficiente.”

Experienţă de joc unică la BetOnRed Casino – Jucăţie online de încredere în România. O alta jucătoare care a avut o experienţă minunată este Maria, o femeie de 35 de ani care lucrează în domeniul financiar. Ea adaugă: „M-am distrat foarte mult la BetOnRed Casino. Jocurile sunt bine proiectate şi ofer posibilitatea de a câştiga mari premii. Recomand cu tărie acest casino online.”

Experienţă de joc unică la BetOnRed Casino – Jucăţie online de încredere în România. Nu toate experienţele sunt atât de entuziasmante, dar sunt totuşi pozitive. Un exemplu este Rares, un bărbat de 40 de ani care lucrează în tehnologie. El spune: „BetOnRed Casino este un loc bun pentru a se distra. Jocurile sunt amuzante şi bine făcute, iar plăţile sunt rapide. Cu toate acestea, ar putea fi nevoie de o mai bună atenţie la detalii în privinţa serviciului client.”

Experienţă de joc unică la BetOnRed Casino – Jucăţie online de încredere în România. Un alt jucător care are o opinie neutră este Ana, o studentă de 22 de ani care este interesată de jocuri de noroc. Ea spune: „Am jucat la BetOnRed Casino şi am câştigat câteva premii. Jocurile sunt interesante şi distractive. Cu toate acestea, ar putea fi nevoie de o mai bună comunicare din partea echipei de serviciu client.”

Experienţă de joc unică la BetOnRed Casino – oferim jocuri online de încredere în România.

Cerinţele noastre de securitate de top și atenţia dedicată detaliilor fac din BetOnRed Casino o alegere firesc pentru cei care caută un mediu de joc online sigur și distractiv.

Înscrie-te acum și descoperă o lume plină de emoţii și posibilităţi, unde puteţi să experimentați ce înseamnă să jucaţi la un casino online de încredere în România!

Design and Develop by Ovatheme